%%%%%%%%%%%%#%####*********+++**==+%%%%%@@%%%%%#%%%%##%%%%%%%%%%%%%%%
%%%%%%%%%%%@@%###********+++++*+==-+*%##@%%%%%%#%%#**####%%%%%%%%%%%%
#%%%%%%%%%@@@@%*******++++=+***+===--=*#@%%#%##**#**#%%%%%###%%%%%%%%
***#%%%%#*#**+******+++++++++=========*#@@%##**+++*##%%%%%%%%###%%%%%
*##***++*****#*#++++**++++===--=+++++*#*%%%%###***########%%%%%%####%
*****##+=#@@@@%*++++==---------+++*%%%*++***#######%%####%%%%%%@@%%%%
#***%%%#*+#%%%#=-------------===*#%%%#**++++#*+*######%%###%%%%@@@@%%
*##*##***##*=+=----=======+++*###%%%%###########*##%###%%%#%%%%%@%**#
*+***#++**+==+======+++++**##########%%%%%%##%#%#*######%%%%%%%%###%%
##*#*#####+-===+++++*************####%@%%%%%%##%#%%*#%%#*%%%%###%%@@%
**##%%%#*#*++++++****************####%%%%%%%%%####%%*########%%@@@@@@
+***##%+=+=++*+*###**********+++*###%%%%%%%%%#%%*%###%########%@@@@%%
++++**++++++****+************++**####%%%%%%#####%%%#*#%*++***#%@@@%%%
+=======+******+******##*##******######%%%%%%#%%%%%%%%%%%#*==*#%@%%%%
======+***********##################*#######%%%%%%%%%%%%%%%#*+==+*#%%
====+**############%%%%%%##%%%%%%%%##%%###############%%%%#****====+#
=+*###########%%%%%%%%%%%###%%%%##%%%%%%%%%%%%%############*+*##*===+
##%%%######%%%%#%%%%%%%%%%###%%%%%%%%%%%%%%%%%%%%%###********#***+++*
%%%####%%%%%%%%%%%%%%%%%%%#####%%#############*##**************##**+*
%###%%%%%%%%%%%%%%#######################**#####***********+++======+
%%%%%%%%%%##################################**#####**++=============+
###############*#############################**++============-==--==+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##************************#